// 广度优先
// 深度优先
// 非递归

function BFsearch(node, cb) {
  var queue = []; // 保存节点
  while (node !== null) {
    cb(node); // 执行遍历的回调

    if (node.children.length != 0) {
      for (var i = 0; i < node.children.length; i++) {
        // 遍历子节点 加入队列
        queue.push(node.children[i]);
      }
    }

    node = queue.shift(); // 从队列中依次 取出该层 节点 执行遍历回调
  }
}
